1. Field of Invention
The invention relates to a synchronous decoding method for AV packets. More particularly, it relates to a method for performing synchronous decoding on video and audio signals in an AV packet-type bitstream, which has a simpler structure and better noise tolerance ability. The method can provide a smoother playing effect especially when the quality of the AV source is bad because of too much noise and a higher error rate.
2. Related Art
In a digital era, many early analog AV data were converted to digital data due to their various limitations in storage, recycling and copying and do not exist any more. Since digital AV data can be easily recorded and stored in a small space and managed using a computer, they indeed show extremely good applicability. With reference to FIG. 4, digital AV data characters, such as MPEG (Motion Picture Expert Group) data, are presented in bitstreams. The video and audio signals are stored in a bitstream in the form of packets. An AV decoder receives such AV data based on the order the data enter the device. That is, the audio and video data cannot be received simultaneously. Therefore, subsequent processing has to synchronize the audio and video signals to play the data simultaneously.
With reference to FIG. 5, to achieve this effect, each AV data packet includes a PTS (Presentation Time Stamp) in the packet header in addition to the AV data (13). The PTS, that is the playing time of the first picture header occurring in current packet, is used to synchronize the audio and video data. There is also an audio/picture header (12) within the AV data (13) to indicate the start point of every frame of video or audio data or to record relevant data for the AV signals. Therefore, before the AV decoder displays pictures, it first checks the relation between the PTS and an STC (System Time Clock) in the picture data. If the PTS is less than the STC, the previous picture has to be played again to slow the picture decoding speed. Conversely, if the PTS is larger than the STC, several pictures have to be skipped to catch up with the STC speed. The STC is thus used as a reference for synchronizing the AV signals.
There are currently two widely used synchronization methods for AV packet-type bitstreams. One of them is to directly synchronize the video and audio signal with the STC. This method requires both repeat and skip functions for both video and audio signals. This results in complications in processing. The second method is to set the audio data playing time as the STC and to synchronize the video data with the audio clock. This then only requires the repeat and skip functions for the video data. Consequently, the processing is simpler and more efficient.
Although the method of controlling just the video data is more efficient, the existent synchronous decoding architecture still has a complicated structure and low noise tolerance (noise immunity). With reference to FIG. 6, the AV bitstream (10) contains video and audio data extracted using a demultiplexer (20). The two types of data are sent through independent buffers (30, 40) and decoders (50, 60) to send out decoded video and audio data. In addition to requiring large capacities in the two sets of buffers (30, 40) to store more pictures and audio signals for AV synchronization processing, a PTS buffer (70) is needed by the demultiplexer (20) to store various PTS data corresponding to each AV data packet in the video buffer (30) and establish an index for managing the video buffer (30). This index makes it possible to quickly obtain the picture data to be played repeatedly. This design is acceptable for good quality AV sources but may cause serious problems in PTS data linked with AV data for AV sources with bad quality, too much noise and a higher error rate (e.g., a bad CD-ROM or seriously scratched CD-ROM). Wrong PTS records and picture heads may induce accumulation error within PTS buffer. This kind of database disorder is very hard to be detected and recovered. Therefore, the AV synchronization structure of the PTS buffer (70) is not able to provide good noise immunity.
An objective of the invention is to provide a synchronous decoding method for AV packets, which has better noise immunity to be able to play AV signals smoothly even when there is a lot of AV noise.
Another objective of the invention is to provide a synchronous decoding method for AV packets that simplifies the conventional structures. The method and simplified structure do not need to use a PTS buffer or to store a large amount of PTS data. Only two variables are needed along with one sampled PTS value. So the invention has the advantages of saving memory resources and a simpler structure.
A further objective of the invention is to provide a synchronous decoding method for AV packets, which only records the PTS value of some video packets. The PTS values of other video packets are estimated using the frame rate and the previous PTS value. By estimation, the problem of incorrect video correspondence due to an incorrectly recorded PTS value can be avoided. Thus, the invention can avoid excessive image flickering, thereby rendering a smoother playing effect.
The main feature of the invention uses a technique where only two sets of variables are used to record video Buffer_Size and Current_PTS. By using a method similar to fixed-time sampling, only one PTS value is recorded and is continuously replaced by reading subsequent PTS values. The time interval between two sampling times is determined from the Buffer_Size measured in the previous sampling, specifically, the amount of video data in the video buffer waiting to be decoded. The PTS data of each video packet during the non-sampling time period are ignored. They are estimated using the frame rate and the previous PTS value. This process is performed repeatedly so as to provide a simpler structure but a smoother playing effect particularly for AV sources with a lot of noise.